package main

import (
	_ "beegoProject14/models/auth"
	_ "beegoProject14/models/my_center"
	_ "beegoProject14/routers"
	"beegoProject14/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

/*
9.73【个人中心模块】工资条模型创建
	1. models - my_center - my_center.go   site插件英语变量

9.74【个人中心模块】表迁移及controller创建
	1. 表迁移 go run main.go orm syncdb -v
	2. main.go 导入 _ "beegoProject14/models/my_center"
	3. controllers - user - salary_slip_controller.go  工资条控制器
	4. views - user - user-list.html 拷贝 salary-slip-list.html
	5. 路由
	6. 数据库操作 - 权限管理 - 权限列表 添加工资条url
    7. salary-slip-list.html 33，35H （注意页面整体修改）

9.75【个人中心模块】工资条前端数据展示
	1. salary-slip-list.html 43H,108H,112H,修改table表单<table class="layui-table">
	2. 数据库用户表内添加部分工号方便测试
	3. salary_slip_controller.go Get逻辑

9.76【个人中心模块】查询指定月份的工资信息
	1. salary-slip-list.html 前端定义月份查询

9.77【个人中心模块】工资条详情功能完成
	1. salary_slip_controller.go 定义 Detail函数
	2. user_add.html 拷贝 salary-slip-detail.html 修改表示标题，因为是查询所以id和name可以删除，
	3. 路由
	4. salary-slip-list.html内添加 urlfor,多余下一页等无关显示删除
	5. salary-slip-detail.html 前端渲染添加value

9.78【财务中心模块】工资条列表展示
	1. 页面添加，一级菜单，财务中心, || 二级菜单，工资条
	2. finance(财务) 定义控制器 Get
	3. 路由
	4. 拷贝salary-slip-list.html到finance内
	5. 页面添加路由
	6. finance - salary-slip-list.html 修改循环显示, 添加分页。
    7. finance(财务) 定义控制器 Get 定义分页模块

*/

func init() {
	user := beego.AppConfig.DefaultString("mysql::Username", "root")
	pwd := beego.AppConfig.DefaultString("mysql::Password", "Ideal123")
	host := beego.AppConfig.DefaultString("mysql::Host", "127.0.0.1")
	port := beego.AppConfig.DefaultInt("mysql::Port", 3306)
	dbName := beego.AppConfig.DefaultString("mysql::DbName", "beegoProject")

	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=true&loc=PRC",
		user, pwd, host, port, dbName)

	orm.RegisterDriver("mysql", orm.DRMySQL)
	orm.RegisterDataBase("default", "mysql", dsn)

	db, err := orm.GetDB("default")
	if err != nil {
		log.Fatal(err)
	} else if err := db.Ping(); err != nil {
		log.Fatal(err)
	}
}

func main() {
	orm.RunCommand()
	/*	orm.Debug = true*/
	beego.BConfig.WebConfig.Session.SessionOn = true

	// 未登录请求拦截
	beego.InsertFilter("/main/*", beego.BeforeRouter, utils.LoginFilter)

	// 日志
	logs.SetLogger(logs.AdapterMultiFile, `{"filename":"logs/beego.log","separate":["error","info","debug"]}`)

	beego.Run()
}
